// pages/goods_detail/goods_detail.js
import request from "../../request/request";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    goodsData: {},
    // 收藏与否
    hasCollect: false,
  },
  goodsInfo: {},
  // 存放收藏收据的数组
  collectData: [],

  // 处理加入购物车事件
  setCart() {
    // 获取本地缓存里的数据
    let cart = wx.getStorageSync("cart") || [];
    // 判断本地缓存里是否存在当前添加的商品
    let index = cart.findIndex((item) => {
      return item.goods_id === this.goodsInfo.goods_id;
    });
    // console.log(index);
    // 第一次肯定是没有的,
    // 如果没有的话
    if (index == -1) {
      // 给当前的对象添加一个自定义属性num=1
      this.goodsInfo.num = 1;
      // 设置一个布尔值，在购物车列表里决定复选框是否选中
      this.goodsInfo.bol = true;
      // 把当前的对象push到cart数组
      cart.push(this.goodsInfo);
      // 设置本地缓存
      wx.setStorageSync("cart", cart);
    } else {
      // 在同一个页面点击的时候，数组里面就已经存在当前商品，直接把数量++
      cart[index].num++;
      // 设置本地缓存
      wx.setStorageSync("cart", cart);
    }
    wx.showToast({
      title: "加入购物车成功",
    });
  },

  // 大图预览
  previewBanner(e) {
    let urls = this.goodsInfo.pics.map((item) => {
      return item.pics_mid;
    });
    let index = e.currentTarget.dataset.index;
    wx.previewImage({
      current: urls[index],
      urls,
    });
  },

  // 点击收藏按钮
  changeCollect(e) {
    let bol = !this.data.hasCollect;
    let id = e.currentTarget.dataset.index;
    this.setData({
      hasCollect: bol,
    });
    let collectData = wx.getStorageSync("collectData") || [];
    if (bol) {
      // 收藏操作
      collectData.push(this.goodsInfo);
      console.log(collectData);
    } else {
      // 取消收藏
      let index = collectData.findIndex((item) => {
        return item.goods_id == id;
      });
      console.log(index);
      collectData.splice(index, 1);
    }
    // 存到缓存
    wx.setStorageSync("collectData", collectData);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    request({
      url: "goods/detail",
      data: { goods_id: options.goods_id },
    }).then((info) => {
      // console.log(info.data.message);
      this.setData({
        goodsData: info.data.message,
      });
      // 临时数据，等会儿要存到本地
      this.goodsInfo = info.data.message;
      let collectData = wx.getStorageSync("collectData");
      let index = collectData.findIndex((item) => {
        return item.goods_id == this.goodsInfo.goods_id;
      });
      console.log(index);
      // 如果index为-1,代表缓存里没有当前这一页的商品数据 hasCollect fasle
      if (index == -1) {
        this.setData({
          hasCollect: false,
        });
      } else {
        // 反之 hasCollect true
        this.setData({
          hasCollect: true,
        });
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
});
